<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <script src="../js/vue.js"></script>
</head>
<!-- 
    computed和watch的区别：
        1.computed可以完成的watch也可以完成
        2.watch可以完成的，computed不一定能够完成（例如：watch可以进行异步操作）
    原则：
        1.Vue所管理的函数最好写成普通函数，使其this指向vm或组件实例对象
        2.不是Vue管理的函数（Ajax的回调函数、定时器的回调函数、promise的回调函数），
            最好写成箭头函数，使其this指向vm或组件实例对象
 -->
<body>
    <div id="root">
        姓: <input type="text" v-model="firstName"><br><br>
        名: <input type="text" v-model="lastName"><br><br>
        全名: <span>{{fullName}}</span>
    </div>
</body>
<script>
    Vue.config.productionTip = false;
    const vm = new Vue({
        el: "#root",
        data: {
            firstName: "张",
            lastName: "三",
            fullName:"张-三"
        },
       watch:{
             firstName(newValue){       
                
                setTimeout(()=>{
                this.fullName = newValue + '-' + this.lastName;
            },1000);
           },
            lastName(newValue) {
               this.fullName = this.firstName + '-' + newValue;
           },
       }
    })
</script>

</html>